"OSTree.AsyncProgress",
"OSTree.GpgSignatureFormatFlags",
"OSTree.GpgVerifyResult",
+ "OSTree.MutableTree",
"OSTree.ObjectType",
"OSTree.Remote",
"OSTree.RepoCheckoutMode",
"OSTree.RepoCommitModifier",
"OSTree.RepoCommitState",
"OSTree.RepoDevInoCache",
+ "OSTree.RepoListRefsExtFlags",
"OSTree.RepoMode",
"OSTree.RepoPruneFlags",
"OSTree.RepoPullFlags",
"OSTree.SePolicy",
"OSTree.SePolicyRestoreconFlags",
"OSTree.StaticDeltaGenerateOpt",
- "OSTree.RepoListRefsExtFlags",
#"OSTree.RepoPruneOptions",
#"OSTree.RepoExportArchiveOptions",
name = "dup"
ignore = true
-[[object]]
-name = "OSTree.MutableTree"
-status = "generate"
- [[object.function]]
- pattern = "lookup"
- ignore = true
-
[[object]]
name = "OSTree.Repo"
status = "generate"
[[object.function]]
- pattern = ".+_async"
- ignore = true
-
- [[object.function]]
- pattern = "mode_from_string"
+ # not sure what's wrong with this method; might be a gir issue
+ name = "write_metadata_async"
ignore = true
[[object.function]]
- pattern = "remote_gpg_import"
+ # async generates bad code for now; revisit with newer gir
+ pattern = ".+_async"
ignore = true
[[object]]
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">Tree</doc>
<type name="MutableTree" c:type="OstreeMutableTree*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
+ <doc xml:space="preserve">name</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
- <parameter name="out_file_checksum" transfer-ownership="none">
+ <parameter name="out_file_checksum"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">checksum</doc>
<type name="utf8" c:type="char**"/>
</parameter>
- <parameter name="out_subdir" transfer-ownership="none">
+ <parameter name="out_subdir"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">subdirectory</doc>
<type name="MutableTree" c:type="OstreeMutableTree**"/>
</parameter>
</parameters>
</return-value>
<parameters>
<parameter name="mode" transfer-ownership="none">
+ <doc xml:space="preserve">a repo mode as a string</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
- <parameter name="out_mode" transfer-ownership="none">
+ <parameter name="out_mode"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">the corresponding #OstreeRepoMode</doc>
<type name="RepoMode" c:type="OstreeRepoMode*"/>
</parameter>
</parameters>
</array>
</parameter>
<parameter name="out_imported"
- transfer-ownership="none"
- nullable="1"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
allow-none="1">
<doc xml:space="preserve">return location for the number of imported
keys, or %NULL</doc>
//fn get_subdirs(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 1, id: 37 };
+ fn lookup(&self, name: &str) -> Result<(String, MutableTree), Error>;
+
#[cfg(any(feature = "v2018_9", feature = "dox"))]
fn remove(&self, name: &str, allow_noent: bool) -> Result<(), Error>;
// unsafe { TODO: call ffi::ostree_mutable_tree_get_subdirs() }
//}
+ fn lookup(&self, name: &str) -> Result<(String, MutableTree), Error> {
+ unsafe {
+ let mut out_file_checksum = ptr::null_mut();
+ let mut out_subdir = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_mutable_tree_lookup(self.to_glib_none().0, name.to_glib_none().0, &mut out_file_checksum, &mut out_subdir, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_file_checksum), from_glib_full(out_subdir))) } else { Err(from_glib_full(error)) }
+ }
+ }
+
#[cfg(any(feature = "v2018_9", feature = "dox"))]
fn remove(&self, name: &str, allow_noent: bool) -> Result<(), Error> {
unsafe {
}
}
+ pub fn mode_from_string(mode: &str) -> Result<RepoMode, Error> {
+ unsafe {
+ let mut out_mode = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_mode_from_string(mode.to_glib_none().0, &mut out_mode, &mut error);
+ if error.is_null() { Ok(from_glib(out_mode)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
#[cfg(any(feature = "v2017_10", feature = "dox"))]
pub fn open_at<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, cancellable: P) -> Result<Repo, Error> {
let cancellable = cancellable.into();
fn remote_get_url(&self, name: &str) -> Result<String, Error>;
+ fn remote_gpg_import<'a, 'b, P: IsA<gio::InputStream> + 'a, Q: Into<Option<&'a P>>, R: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, source_stream: Q, key_ids: &[&str], cancellable: R) -> Result<u32, Error>;
+
fn remote_list(&self) -> Vec<String>;
//#[cfg(any(feature = "v2018_6", feature = "dox"))]
}
}
+ fn remote_gpg_import<'a, 'b, P: IsA<gio::InputStream> + 'a, Q: Into<Option<&'a P>>, R: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, source_stream: Q, key_ids: &[&str], cancellable: R) -> Result<u32, Error> {
+ let source_stream = source_stream.into();
+ let source_stream = source_stream.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_imported = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_gpg_import(self.to_glib_none().0, name.to_glib_none().0, source_stream.0, key_ids.to_glib_none().0, &mut out_imported, cancellable.0, &mut error);
+ if error.is_null() { Ok(out_imported) } else { Err(from_glib_full(error)) }
+ }
+ }
+
fn remote_list(&self) -> Vec<String> {
unsafe {
let mut out_n_remotes = mem::uninitialized();